#include "mainwidget.h"
#include "ui_mainwidget.h"
#include "subwidget.h"
#include "qdebug.h"

MainWidget::MainWidget(QWidget *parent): QWidget(parent), ui(new Ui::MainWidget)
{
    ui->setupUi(this);

#if 0
    // 未指定父窗口，这个窗口就是独立的窗口
    // 需要调用其show方法，来将其显示
    SubWidget *subWidget = new SubWidget();
    subWidget->setWindowTitle("SubWidget");
    subWidget->show();
#endif

#if 0
    // 如果指定了父窗口，这个窗口就是内嵌窗口
    // 就不需要调用其show方法，因为父窗口显示的时候，会自动显示子窗口
    SubWidget *subWidget = new SubWidget(this);
    subWidget->setWindowTitle("SubWidget");
    // subWidget->show();
#endif

    connect(ui->btnGetSize, &QPushButton::clicked, this, &MainWidget::onBtnGetSizeClicked);
    connect(ui->btnSetSize, &QPushButton::clicked, this, &MainWidget::onBtnSetSizeClicked);
    connect(ui->btnSetFixedSize, &QPushButton::clicked, this, &MainWidget::onBtnSetFixedSize);
    connect(ui->btnSetMinSize, &QPushButton::clicked, this, &MainWidget::onBtnSetMinSizeClicked);
    connect(ui->btnSetMaxSize, &QPushButton::clicked, this, &MainWidget::onBtnSetMaxSizeClicked);
    connect(ui->btnMove, &QPushButton::clicked, this, &MainWidget::onBtnMoveClicked);
    connect(ui->btnSetTitle, &QPushButton::clicked, this, &MainWidget::onBtnSetWindowTitle);
    connect(ui->btnSetIcon, &QPushButton::clicked, this, &MainWidget::onBtnSetWindowIcon);

}

MainWidget::~MainWidget()
{
    delete ui;
}

/** 获取窗口的位置和大小
 * @brief MainWidget::onBtnGetSizeClicked
 */
void MainWidget::onBtnGetSizeClicked()
{
    qDebug() << "-------------------";
    QRect rect = this->geometry();
    qDebug() << "左上：" << rect.topLeft();
    qDebug() << "右上：" << rect.topRight();
    qDebug() << "左下：" << rect.bottomLeft();
    qDebug() << "右下：" << rect.bottomRight();
    qDebug() << "宽度：" << rect.width();
    qDebug() << "高度：" << rect.height();
}

/** 设置窗口的大小
 * @brief MainWidget::onBtnSetSizeClicked
 */
void MainWidget::onBtnSetSizeClicked()
{
    this->resize(400, 400);
}

/** 设置窗口的固定大小
 * @brief MainWidget::onBtnSetFixedSize
 */
void MainWidget::onBtnSetFixedSize()
{
    this->setFixedSize(500, 500);
}

/** 设置最小的窗口
 * @brief MainWidget::onBtnSetMinSizeClicked
 */
void MainWidget::onBtnSetMinSizeClicked()
{
    this->setMinimumSize(300, 300);
}

/** 设置窗口的最大值
 * @brief MainWidget::onBtnSetMaxSizeClicked
 */
void MainWidget::onBtnSetMaxSizeClicked()
{
    this->setMaximumSize(600,600);
}

/** 移动窗口
 * @brief MainWidget::onBtnMoveClicked
 */
void MainWidget::onBtnMoveClicked()
{
    this->move(100,100);
}

/** 设置窗口的标题
 * @brief MainWidget::onBtnSetWindowTitle
 */
void MainWidget::onBtnSetWindowTitle()
{
    this->setWindowTitle("QWidget演示");
}

/** 设置窗口的图标
 * @brief MainWidget::onBtnSetWindowIcon
 */
void MainWidget::onBtnSetWindowIcon()
{
    this->setWindowIcon(QIcon(":/icon/favicon.ico"));
}
